package com.mingtu.jgspatrol.activity;//package com.mingtu.jgspatrol.activity;
//
//import android.content.pm.ApplicationInfo;
//import android.graphics.drawable.AnimationDrawable;
//import android.os.Build;
//import android.view.View;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.ScrollView;
//
//import androidx.annotation.RequiresApi;
//import androidx.core.widget.NestedScrollView;
//
//import com.alibaba.ha.adapter.AliHaAdapter;
//import com.alibaba.ha.adapter.AliHaConfig;
//import com.alibaba.ha.adapter.Plugin;
//import com.alibaba.ha.adapter.service.tlog.TLogLevel;
//import com.alibaba.ha.adapter.service.tlog.TLogService;
//import com.baidu.mobstat.StatService;
//import com.blankj.utilcode.util.ActivityUtils;
//import com.blankj.utilcode.util.AppUtils;
//import com.blankj.utilcode.util.DeviceUtils;
//import com.blankj.utilcode.util.EncodeUtils;
//import com.blankj.utilcode.util.EncryptUtils;
//import com.blankj.utilcode.util.GsonUtils;
//import com.blankj.utilcode.util.MetaDataUtils;
//import com.blankj.utilcode.util.SPStaticUtils;
//import com.blankj.utilcode.util.StringUtils;
//import com.blankj.utilcode.util.TimeUtils;
//import com.blankj.utilcode.util.ToastUtils;
//import com.google.gson.Gson;
//import com.google.gson.JsonSyntaxException;
//import com.hjq.gson.factory.GsonFactory;
//import com.lxj.xpopup.XPopup;
//import com.lxj.xpopup.core.BasePopupView;
//import com.lxj.xpopup.interfaces.OnConfirmListener;
//import com.lzy.okgo.OkGo;
//import com.lzy.okgo.model.HttpHeaders;
//import com.lzy.okgo.model.Response;
//import com.mingtu.common.activity.LoginActivity;
//import com.mingtu.common.bean.UserInfoBean;
//import com.mingtu.common.callback.ResultCallback;
//import com.mingtu.common.utils.ActivityUtil;
//import com.mingtu.common.utils.Constant;
//import com.mingtu.common.utils.IntentUtils;
//import com.mingtu.common.utils.MyLogUtil;
//import com.mingtu.common.utils.SPTools;
//import com.mingtu.contacts.utils.AppIdAuthUtil;
//import com.mingtu.contacts.utils.CheckSumBuilder;
//import com.mingtu.contacts.utils.SelfNotificationConfigFetcher;
//import com.mingtu.jgspatrol.BuildConfig;
//import com.mingtu.jgspatrol.R;
//import com.mingtu.jgspatrol.base.MyBaseActivity;
//import com.mingtu.jgspatrol.bean.YXRegisterBean;
//import com.mingtu.jgspatrol.callback.MyStringDialogCallback;
//import com.mingtu.jgspatrol.utils.MyConstant;
//import com.mingtu.jgspatrol.utils.MySPTools;
//import com.mob.MobSDK;
//import com.netease.lava.nertc.sdk.NERtcOption;
//import com.netease.nimlib.sdk.NIMClient;
//import com.netease.nimlib.sdk.Observer;
//import com.netease.nimlib.sdk.RequestCallback;
//import com.netease.nimlib.sdk.StatusCode;
//import com.netease.nimlib.sdk.auth.AuthService;
//import com.netease.nimlib.sdk.auth.AuthServiceObserver;
//import com.netease.nimlib.sdk.auth.LoginInfo;
//import com.netease.nimlib.sdk.lifecycle.SdkLifecycleObserver;
//import com.netease.yunxin.nertc.ui.CallKitUI;
//import com.netease.yunxin.nertc.ui.CallKitUIOptions;
//import com.scwang.smartrefresh.layout.SmartRefreshLayout;
//import com.taobao.sophix.SophixManager;
//import com.tencent.bugly.crashreport.CrashReport;
//import com.tencent.smtt.sdk.QbSdk;
//import com.tencent.smtt.sdk.TbsListener;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//
//import cn.jiguang.api.utils.JCollectionAuth;
//import cn.jpush.android.api.JPushInterface;
//import cn.jpush.android.ups.JPushUPSManager;
//
//
//public class MainActivityNew extends MyBaseActivity {
//    private boolean isFold = false; //是否折叠
//    private int nestedScrollViewTop;
//    private AnimationDrawable animationDrawable1;
//    private AnimationDrawable animationDrawable3;
//    private AnimationDrawable animationDrawable2;
//    private String sdkappid;
//    private String mobile;
//    private boolean mIsKickedOffline = false;
//    private boolean mIsUserSigExpired = false;
//    private String userName;
//
//    @Override
//    protected int getLayoutId() {
//        return R.layout.activity_main_new;
//    }
//
//    @RequiresApi(api = Build.VERSION_CODES.M)
//    @Override
//    protected void initView() {
//        hideHeadView();
//        //            AnimationDrawable 的start() 方法不能在activity的 onCreat() 中调用， 因为 AnimationDrawable 还未完全附着到window上， 所以最好的调用时机时在 Activity 的 onWindowFocusChange()方法中。onWindowFocusChange()方法在 Activity 生命周期中表示 view 的可视，onStart, onResume, onCreate 都不是真正 view visible 的时间点，真正的view visible时间点是 onWindowFocusChanged() 函数被执行时。
//        // 动态创建
//        //梅花
//        if (animationDrawable1 == null) {
//            animationDrawable1 = new AnimationDrawable();
//            ApplicationInfo appInfo1 = context.getApplicationInfo();
//            for (int i = 0; i <= 175; i++) {
//                int resID = getResources().getIdentifier("img_plum_blossom" + i, "drawable", appInfo1.packageName);
//                animationDrawable1.addFrame(getResources().getDrawable(resID), 40);
//            }
//            animationDrawable1.setOneShot(false);
//            ivPlumBlossom.setImageDrawable(animationDrawable1);
//        }
//
//        //梅花花瓣
//        if (animationDrawable3 == null) {
//            animationDrawable3 = new AnimationDrawable();
//            ApplicationInfo appInfo3 = context.getApplicationInfo();
//            for (int i = 0; i <= 499; i++) {
//                int resID = getResources().getIdentifier("img_petal" + i, "drawable", appInfo3.packageName);
//                animationDrawable3.addFrame(getResources().getDrawable(resID), 40);
//            }
//            animationDrawable3.setOneShot(false);
//            ivPetal.setImageDrawable(animationDrawable3);
//
//        }
//
//        //荷花
//        if (animationDrawable2 == null) {
//            animationDrawable2 = new AnimationDrawable();
//            ApplicationInfo appInfo2 = context.getApplicationInfo();
//            for (int i = 0; i <= 125; i++) {
//                int resID = getResources().getIdentifier("img_lotus" + i, "drawable", appInfo2.packageName);
//                animationDrawable2.addFrame(getResources().getDrawable(resID), 40);
//            }
//            animationDrawable2.setOneShot(false);
//            ivLotus.setImageDrawable(animationDrawable2);
//        }
//
//
//        scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
//            @Override
//            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
//                if (scrollView.getScrollY() == 0) {
//                    //顶部
//                    int visibility = layoutModle.getVisibility();
//                    if (visibility == View.VISIBLE) {
//                        setArrowStatus(0);
//                    }
//                }
//
//                View contentView = scrollView.getChildAt(0);
//                if (contentView != null && contentView.getMeasuredHeight() == (scrollView.getScrollY() + scrollView.getHeight())) {
//                    //底部
//                    int visibility = layoutModle.getVisibility();
//                    if (visibility == View.GONE) {
//                        setArrowStatus(1);
//                    }
//                }
//
//            }
//        });
//        scrollView.smoothScrollTo(0, 1000);
//    }
//
//    @Override
//    protected void initData() {
//        List<String> tags = new ArrayList<>();
//        //联系方式
//        mobile = SPStaticUtils.getString(SPTools.mobile);
//        //联系方式
//        userName = SPStaticUtils.getString(SPTools.userName);
//        if (!StringUtils.isEmpty(mobile)) {
//            tags.add(mobile);
//        }
//
//        SophixManager.getInstance().setTags(tags); //设置灰度发布的标签，需要在queryAndLoadNewPatch之前调用
//        //加载补丁包
//        SophixManager.getInstance().queryAndLoadNewPatch();
//        //TLog远程日志
//        initHa(mobile, userName);
//        initPolicyGrant();
//        //腾讯浏览服务
//        initQb();
//
//        if (JPushInterface.isPushStopped(context)) {
//            JPushUPSManager.turnOnPush(context, null);
//        }
//        getUserInfo();
//
//        NIMClient.getService(SdkLifecycleObserver.class).observeMainProcessInitCompleteResult(new Observer<Boolean>() {
//            @Override
//            public void onEvent(Boolean b) {
//                if (b != null && b) {
//                    registeriM(new ResultCallback() {
//                        @Override
//                        public void result(Object token) {
//                            NIMClientLogin(mobile, String.valueOf(token));
//                        }
//                    });
//                }
//            }
//        }, true);
//        NIMClientObserveOnlineStatus();
//
//    }
//
//    @Override
//    protected void getData() {
//
//    }
//
//    @Override
//    public void onWindowFocusChanged(boolean hasFocus) {
//        super.onWindowFocusChanged(hasFocus);
//        if (hasFocus) {
//            if (animationDrawable1 != null) {
//                animationDrawable1.start();
//            }
//            if (animationDrawable3 != null) {
//                animationDrawable3.start();
//            }
//
//            if (animationDrawable2 != null) {
//                animationDrawable2.start();
//            }
//
//            // 静态创建
//            // iv.setImageResource(R.drawable.anim_frame);
//            // AnimationDrawable animationDrawable = (AnimationDrawable) iv.getDrawable();
//            // animationDrawable.start();
//        } else {
//            if (animationDrawable1 != null) {
//                animationDrawable1.stop();
//            }
//
//            if (animationDrawable3 != null) {
//                animationDrawable3.stop();
//            }
//
//            if (animationDrawable2 != null) {
//                animationDrawable2.stop();
//            }
//        }
//
//    }
//
//    @OnClick({R.id.iv_arrow, R.id.iv_center, R.id.iv_set, R.id.layout_animal_find, R.id.layout_office, R.id.layout_map, R.id.layout_lot})
//    public void onViewClicked(View v) {
//        switch (v.getId()) {
//            case R.id.iv_arrow:
//                if (isFold) {
//                    scrollView.smoothScrollTo(0, 1000);
//                    setArrowStatus(1);
//                } else {
//                    scrollView.fullScroll(ScrollView.FOCUS_UP);
//                    setArrowStatus(0);
//                }
//
//                break;
//            case R.id.iv_center:
//                IntentUtils.getInstance().readyGo(ActivityUtils.getTopActivity(), MineActivity.class);
//                break;
//            case R.id.iv_set:
//                //账号设置
//                IntentUtils.getInstance().readyGo(ActivityUtils.getTopActivity(), MySetActivity.class);
//                break;
//            case R.id.layout_animal_find:
//                IntentUtils.getInstance().readyGo(ActivityUtils.getTopActivity(), BioFindActivity.class);
//                break;
//            case R.id.layout_office:
//                IntentUtils.getInstance().readyGo(ActivityUtils.getTopActivity(), OfficeActivity.class);
//                break;
//            case R.id.layout_map:
//                IntentUtils.getInstance().readyGo(ActivityUtils.getTopActivity(), MapActivity.class);
//                break;
//            case R.id.layout_lot:
//                IntentUtils.getInstance().readyGo(ActivityUtils.getTopActivity(), LotActivity.class);
//                break;
//        }
//    }
//
//    /**
//     * 滚动到指定视图
//     *
//     * @param view
//     */
//    public void scrollByDistance(View view) {
//
//        int[] intArray = new int[2];
//        view.getLocationOnScreen(intArray); //返回一个包含view左上角在屏幕上的x和y坐标的数组
//        nestedScrollViewTop = intArray[1];
//        int distance = view.getHeight() + nestedScrollViewTop;//必须算上nestedScrollView本身与屏幕的距离
//        scrollView.fling(distance);//添加上这句滑动才有效
//        scrollView.smoothScrollTo(0, distance);
//    }
//
//    private void initHa(String mobile, String userName) {
//        String userNick = "jgspatrol";
//        if (!StringUtils.isEmpty(userName)) {
//            userNick = userName;
//        } else if (!StringUtils.isEmpty(mobile)) {
//            userNick = mobile;
//        }
//        AliHaConfig config = new AliHaConfig();
//        config.appKey = BuildConfig.EMAS_APP_KRY; //配置项：appkey
//        config.appVersion = BuildConfig.VERSION_NAME;
//        config.appSecret = BuildConfig.EMAS_APP_SECRET; //配置项：appsecret
//        config.channel = "channel"; //配置项：应用的渠道号标记，自定义
//        config.userNick = userNick; //配置项：用户的昵称
//        config.application = getApplication(); //配置项：应用指针
//        config.context = getApplicationContext(); //配置项：应用上下文
//        config.isAliyunos = false; //配置项：是否为yunos
//        config.rsaPublicKey = BuildConfig.TLOG_RSA_PUBLIC_LEY; //配置项：tlog公钥
//        AliHaAdapter.getInstance().addPlugin(Plugin.tlog);
//        AliHaAdapter.getInstance().addPlugin(Plugin.apm);
//        AliHaAdapter.getInstance().openDebug(AppUtils.isAppDebug());
//        AliHaAdapter.getInstance().start(config);
//        TLogService.updateLogLevel(TLogLevel.DEBUG); //配置项：控制台可拉取的日志级别
//
//    }
//
//    //隐私声明
//    private void initPolicyGrant() {
//        MobSDK.submitPolicyGrantResult(true);
//
//        //关闭SDK自启动,为了上架审核，不影响推送
////        JCollectionAuth.enableAutoWakeup(context, false);
//        JPushInterface.setDebugMode(AppUtils.isAppDebug());
//        JCollectionAuth.setAuth(this, true);
//        JPushInterface.init(this);
//
//        String appChannel = "mingtu";
//        String userName = SPStaticUtils.getString(SPTools.userName);
//        if (!StringUtils.isEmpty(userName)) {
//            appChannel = userName;
//        }
//        String baiduStatAppkey = MetaDataUtils.getMetaDataInApp("BaiduMobAd_STAT_ID");
//        String buglyAppkey = MetaDataUtils.getMetaDataInApp("com.tencent.bugly.apikey");
//        // SDK初始化，该函数不会采集用户个人信息，也不会向百度移动统计后台上报数据
//        StatService.init(context, baiduStatAppkey, appChannel);
//        // 通过该接口可以控制敏感数据采集，true表示可以采集，false表示不可以采集，
//        // 该方法一定要最优先调用，请在StatService.start(this)之前调用，采集这些数据可以帮助App运营人员更好的监控App的使用情况，
//        // 建议有用户隐私策略弹窗的App，用户未同意前设置false,同意之后设置true
//        StatService.setAuthorizedState(this, true);
//        // 自动埋点，建议在Application中调用。否则可能造成部分页面遗漏，无法完整统计。
////        StatService.autoTrace(this, true, true);
//
//        // setSendLogStrategy已经@deprecated，建议使用新的start接口
//        // 如果没有页面和自定义事件统计埋点，此代码一定要设置，否则无法完成统计
//        // 进程第一次执行此代码，会导致发送上次缓存的统计数据；若无上次缓存数据，则发送空启动日志
//        // 由于多进程等可能造成Application多次执行，建议此代码不要埋点在Application中，否则可能造成启动次数偏高
//        // 建议此代码埋点在统计路径触发的第一个页面中，若可能存在多个则建议都埋点
//        StatService.start(this);
//
//        //bugly
//        CrashReport.initCrashReport(getApplicationContext(), buglyAppkey, false);
//        CrashReport.setDeviceId(context, DeviceUtils.getUniqueDeviceId()); // 设备id
//        CrashReport.setDeviceModel(context, DeviceUtils.getModel()); //设备型号
//        CrashReport.setAppVersion(context, AppUtils.getAppVersionName());
//        CrashReport.setAppPackage(context, AppUtils.getAppPackageName());
//    }
//
//
//    private void initQb() {
//        /* 设置允许移动网络下进行内核下载。默认不下载，会导致部分一直用移动网络的用户无法使用x5内核 */
//        QbSdk.setDownloadWithoutWifi(true);
//
//        /* SDK内核初始化周期回调，包括 下载、安装、加载 */
//        QbSdk.setTbsListener(new TbsListener() {
//
//            /**
//             * @param stateCode 110: 表示当前服务器认为该环境下不需要下载
//             */
//            @Override
//            public void onDownloadFinish(int stateCode) {
//                MyLogUtil.i("QbSdk", "onDownloadFinished: " + stateCode);
//            }
//
//            /**
//             * @param stateCode 200、232安装成功
//             */
//            @Override
//            public void onInstallFinish(int stateCode) {
//                MyLogUtil.i("QbSdk", "onInstallFinished: " + stateCode);
//            }
//
//            /**
//             * 首次安装应用，会触发内核下载，此时会有内核下载的进度回调。
//             * @param progress 0 - 100
//             */
//            @Override
//            public void onDownloadProgress(int progress) {
//                MyLogUtil.i("QbSdk", "Core Downloading: " + progress);
//            }
//        });
//
//        /* 此过程包括X5内核的下载、预初始化，接入方不需要接管处理x5的初始化流程，希望无感接入 */
//        QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {
//            @Override
//            public void onCoreInitFinished() {
//                // 内核初始化完成，可能为系统内核，也可能为系统内核
//            }
//
//            /**
//             * 预初始化结束
//             * 由于X5内核体积较大，需要依赖wifi网络下发，所以当内核不存在的时候，默认会回调false，此时将会使用系统内核代替
//             * 内核下发请求发起有24小时间隔，卸载重装、调整系统时间24小时后都可重置
//             * @param isX5 是否使用X5内核
//             */
//            @Override
//            public void onViewInitFinished(boolean isX5) {
////                MyLogUtil.i(TAG, "onViewInitFinished: " + isX5);
//            }
//        });
//    }
//
//    //用于兼容登录过的用户
//    private void getUserInfo() {
//        OkGo.<String>get(Constant.getInstance().GET_USER_INFO)
//                .tag(this)
//                .execute(new MyStringDialogCallback(this) {
//                    @Override
//                    public void onSuccess(Response<String> response) {
//                        String result = response.body();
//                        if (!StringUtils.isEmpty(result)) {
//                            try {
//                                Gson gson = GsonFactory.getSingletonGson();
//                                UserInfoBean userInfoBean = new UserInfoBean();
//                                userInfoBean = gson.fromJson(result, UserInfoBean.class);
//
//                                UserInfoBean.UserBean userBean = userInfoBean.getUser();
//                                String username = userBean.getUsername();
//                                String mobile = userBean.getMobile();
//                                String name = userBean.getName();
//
//                                List<String> isLeaderList = new ArrayList<>();
//                                List<UserInfoBean.UserBean.RoleListBean> roleList = userBean.getRoleList();
//
//                                if (roleList != null && roleList.size() > 0) {
//                                    for (int i = 0; i < roleList.size(); i++) {
//                                        String isLeader = roleList.get(i).getIsLeader(); //isLeader 1：职员 0：普通
//                                        isLeaderList.add(isLeader);
//                                    }
//
//                                }
//
//                                if (roleList != null && roleList.size() > 0) {
//                                    UserInfoBean.UserBean.RoleListBean roleListBean = roleList.get(0);
//                                    List<UserInfoBean.UserBean.RoleListBean.MenuAppListBean> menuAppListBean = roleListBean.getMenuAppList();
//                                    if (menuAppListBean != null && menuAppListBean.size() > 0) {
//                                        List<String> typeList = new ArrayList<>();
//                                        for (int i = 0; i < menuAppListBean.size(); i++) {
//                                            String path = menuAppListBean.get(i).getPath(); //isLeader 1：职员 0：普通
//                                            typeList.add(path);
//                                        }
////                                        if (typeList.contains("/voice")) {
////                                            voice = true;
////                                        } else {
////                                            voice = false;
////                                        }
//                                        //是否有下载图片、视频的权限
//                                        if (typeList.contains("download")) {
//                                            SPStaticUtils.put(SPTools.download, true);
//                                        } else {
//                                            SPStaticUtils.put(SPTools.download, false);
//                                        }
//
//                                        //控制户外屏的权限
//                                        if (typeList.contains("outdoorControl")) {
//                                            SPStaticUtils.put(SPTools.outdoorControl, true);
//                                        } else {
//                                            SPStaticUtils.put(SPTools.outdoorControl, false);
//                                        }
//                                    }
//                                }
//
//                                if (!StringUtils.isEmpty(mobile)) {
//                                    SPStaticUtils.put(SPTools.mobile, mobile);//保存手机号
//                                } else {
//                                    SPStaticUtils.put(SPTools.mobile, "");
//                                }
//                                if (!StringUtils.isEmpty(name)) {
//                                    SPStaticUtils.put(SPTools.userName, name);//保存用户名
//                                } else {
//                                    SPStaticUtils.put(SPTools.userName, "");
//                                }
//
//                                //是否是领导权限
//                                if (isLeaderList.contains("1")) {
//                                    SPStaticUtils.put(SPTools.isLeader, true);
//                                } else {
//                                    SPStaticUtils.put(SPTools.isLeader, false);
//                                }
//
//                                JPushInterface.setAlias(context, Constant.TYPE_BIND_ALIAS, username);
////                                liteavInit();
//                            } catch (JsonSyntaxException e) {
//                                e.printStackTrace();
//                            }
//
//                        }
//
//                    }
//
//                    @Override
//                    public void onError(Response<String> response) {
//                        String result = response.body();
//                        MyLogUtil.e(getClass().getSimpleName(), "onError==" + result);
//                    }
//                });
//
//
//    }
//
//    /**
//     * 初始化实时视频
//     */
////    private void liteavInit() {
////        //腾讯实时音视频
//////        boolean tuiCalling = SPStaticUtils.getBoolean(MySPTools.TUI_CALLING);
//////        if (!SPStaticUtils.contains(MySPTools.TUI_CALLING) || tuiCalling == false) {
////        //每次都需要注册登录，不然会出现拨打错误
////        getKeyInfo(new ResultCallback() {
////            @Override
////            public void result(Object object) {
////                boolean b = Boolean.parseBoolean(object.toString());
////                if (!b && StringUtils.isEmpty(sdkappid)) {
////                    ToastUtils.showLong("实时音视频的key获取失败！");
////                    return;
////                }
////                getUserSign(userName, mobile);
////            }
////        });
//////        }
////
////    }
//
//    public boolean checkUserStatus() {
//        String tip = "";
//        if (mIsKickedOffline) {
//            tip = getString(R.string.app_user_kicked_offline);
//            ToastUtils.showShort(tip);
//
//            JPushInterface.deleteAlias(context, Constant.TYPE_BIND_ALIAS);
//            JPushUPSManager.turnOffPush(context, null);
//        }
//        if (mIsUserSigExpired) {
//            tip = getString(R.string.app_user_sig_expired);
//            ToastUtils.showShort(tip);
//        }
//
//        BasePopupView tipPopupView = new XPopup.Builder(ActivityUtils.getTopActivity())
//                .isDestroyOnDismiss(true)
//                .dismissOnTouchOutside(false)
//                .hasShadowBg(true)
//                .asConfirm(context.getResources().getString(R.string.text_tip),
//                        tip,
//                        context.getResources().getString(R.string.text_cancle), context.getResources().getString(R.string.text_sure),
//                        new OnConfirmListener() {
//                            @Override
//                            public void onConfirm() {
//
//                                IntentUtils.getInstance().readyGo(ActivityUtil.getTopActivity(), LoginActivity.class);
//                                ActivityUtil.removeAllActivity();
//
//                            }
//                        }, null,
//                        true);
//        tipPopupView.show();
//
//
//        SPStaticUtils.put(MySPTools.mIsKickedOffline, mIsKickedOffline);
//        SPStaticUtils.put(MySPTools.mIsUserSigExpired, mIsUserSigExpired);
//        return !mIsKickedOffline && !mIsUserSigExpired;
//    }
//
//    //获取实时音视频的userSig
////    private void getUserSign(String userName, String myUserId) {
////        HashMap<String, Object> hashMap = new HashMap<>();
////        hashMap.put("message", myUserId);
////        String str = GsonUtils.toJson(hashMap);
////        OkGo.<String>post(MyConstant.POST_USER_SIG + "/" + myUserId)
////                .tag(this)
////                .upJson(str)
////                .execute(new MyStringDialogCallback(this) {
////                    @Override
////                    public void onSuccess(Response<String> response) {
////                        String result = response.body();
////                        if (!StringUtils.isEmpty(result)) {
////                            JSONObject jsonObject = JSON.parseObject(result);
////                            String msg = jsonObject.getString("msg");
////                            if (msg.equals(Constant.RESULT_SUCCESS)) {
////                                String sign = jsonObject.getString("sign");
////                                TUILogin.login(context, Integer.parseInt(sdkappid), myUserId, sign, new TUICallback() {
////                                    @Override
////                                    public void onSuccess() {
////                                        MyLogUtil.e("MainActivity", "TUILogin  onSuccess");
////                                        SPStaticUtils.put(MySPTools.TUI_CALLING, true);
////                                        TUICallKit.createInstance(context).setSelfInfo(userName, "https://static.mingtukeji.com/img/img_head_view.png", null);
////
////                                    }
////
////                                    @Override
////                                    public void onError(int errorCode, String errorMessage) {
////                                        MyLogUtil.e("MainActivity", "TUILogin  code: " + errorCode + " msg:" + errorMessage);
////                                        SPStaticUtils.put(MySPTools.TUI_CALLING, false);
////                                        ToastUtils.showLong("实时音视频功能获取失败！");
////                                    }
////                                });
////
////                                TUILogin.addLoginListener(new TUILoginListener() {
////                                    @Override
////                                    public void onKickedOffline() {
////                                        super.onKickedOffline();
////                                        mIsKickedOffline = true;
////                                        checkUserStatus();
////                                    }
////
////                                    @Override
////                                    public void onUserSigExpired() {
////                                        super.onUserSigExpired();
////                                        mIsUserSigExpired = true;
////                                        checkUserStatus();
////                                    }
////                                });
////
////
////                            } else {
////
////                            }
////
////                        }
////
////                    }
////
////                    @Override
////                    public void onError(Response<String> response) {
////                        String result = response.body();
////                        MyLogUtil.e(getClass().getSimpleName(), "onError==" + result);
////                    }
////                });
////    }
////
////    //获取实时音视频的key和secretkey
////    private void getKeyInfo(ResultCallback resultCallback) {
////        OkGo.<String>get(MyConstant.GET_KEY_INFO)
////                .tag(this)
////                .execute(new MyStringDialogCallback(this) {
////                    @Override
////                    public void onSuccess(Response<String> response) {
////                        String result = response.body();
////                        if (!StringUtils.isEmpty(result)) {
////                            try {
////                                Gson gson = GsonFactory.getSingletonGson();
////                                KeyBean keyBean = new KeyBean();
////                                keyBean = gson.fromJson(result, KeyBean.class);
////                                if (keyBean != null) {
////                                    sdkappid = keyBean.getSdkappid();
////                                    resultCallback.result(true);
////                                    SPStaticUtils.put(MySPTools.TUI_APPID, sdkappid);
////                                } else {
////                                    resultCallback.result(false);
////                                }
////                            } catch (JsonSyntaxException e) {
////                                e.printStackTrace();
////                                resultCallback.result(false);
////                            }
////
////                        }
////                    }
////                });
////    }
//
//    private void registeriM(ResultCallback callback) {
//        String nonce = AppIdAuthUtil.newNonce();
//        long curTime = TimeUtils.getNowMills();
//        String appKey = BuildConfig.YX_APP_KEY;
//        String appSecret = BuildConfig.YX_APP_SECRET;
//        long ttl = 600;
//
//        String data = appKey + mobile + curTime + ttl + appSecret;
//        String signature = EncryptUtils.encryptSHA1ToString(data).toLowerCase();
//        HashMap<String, Object> authMap = new HashMap<>();
//        authMap.put("signature", signature);
//        authMap.put("curTime", curTime);
//        authMap.put("ttl", ttl);
//        String jsonStr = GsonUtils.toJson(authMap);
//
//        String myToken = EncodeUtils.base64Encode2String(jsonStr.getBytes());
//
//        HttpHeaders headers = new HttpHeaders();
//        headers.put("AppKey", appKey);
//        headers.put("Nonce", nonce);
//        headers.put("CurTime", String.valueOf(curTime / 1000));
//        headers.put("CheckSum", CheckSumBuilder.getCheckSum(appSecret, nonce, String.valueOf(curTime / 1000)));
//
//
//        HashMap<String, Object> hashMap = new HashMap<>();
//
//        HashMap<String, Object> userInfo = new HashMap<>();
//        userInfo.put("name", userName);
//        userInfo.put("avatar", MyConstant.HEAD_URL);
//        userInfo.put("mobile", mobile);
//
//        hashMap.put("account_id", mobile);
//        hashMap.put("user_information", userInfo);
//        String str = GsonUtils.toJson(hashMap);
//        OkGo.<String>post(MyConstant.POST_YX_REGISTER)
//                .tag(this)
//                .headers(headers)
//                .upJson(str)
//                .execute(new MyStringDialogCallback(this) {
//                    @Override
//                    public void onSuccess(Response<String> response) {
//                        String result = response.body();
//                        if (!StringUtils.isEmpty(result)) {
//                            try {
//                                Gson gson = GsonFactory.getSingletonGson();
//                                YXRegisterBean registerBean = new YXRegisterBean();
//                                registerBean = gson.fromJson(result, YXRegisterBean.class);
//                                int code = registerBean.getCode();
//                                MyLogUtil.e("NIMRegister", "code==" + code);
//                                if (code == 200) { //注册成功
//                                    callback.result(myToken);
//                                } else if (code == 102405) { //用户存在
//                                    callback.result(myToken);
//                                } else if (code == 102434) {
//                                    ToastUtils.showLong("音视频注册，超过最大账号数！");
//                                } else if (code == 102449) {
//                                    ToastUtils.showLong("音视频注册，账号请求需要重试！");
//                                } else if (code == 103451) {
//                                    ToastUtils.showLong("音视频注册，用户资料反垃圾！");
//                                } else if (code == 500) {
//                                    ToastUtils.showLong("音视频注册，服务器内部错误!");
//                                } else if (code == 414) {
//                                    ToastUtils.showLong("音视频注册，参数错误!");
//                                } else if (code == 403) {
//                                    ToastUtils.showLong("音视频注册，鉴权失败!");
//                                }
//                            } catch (JsonSyntaxException e) {
//                                throw new RuntimeException(e);
//                            }
//                        }
//                    }
//
//                    @Override
//                    public void onError(Response<String> response) {
//                        String result = response.body();
//                        MyLogUtil.e(getClass().getSimpleName(), "onError==" + result);
//                    }
//                });
//    }
//
//    private void NIMClientLogin(String accid, String token) {
//        //动态token登录
//        LoginInfo.LoginInfoBuilder loginInfoBuilder = new LoginInfo.LoginInfoBuilder(accid, token, 1, "");
//        LoginInfo loginInfo = loginInfoBuilder.build();
//        RequestCallback<LoginInfo> callback =
//                new RequestCallback<LoginInfo>() {
//                    @Override
//                    public void onSuccess(LoginInfo param) {
//                        MyLogUtil.e("NIMClientLogin", "NIMClientLogin  success");
//                    }
//
//                    @Override
//                    public void onFailed(int code) {
//                        MyLogUtil.e("NIMClientLogin", "NIMClientLogin  faile");
//                    }
//
//                    @Override
//                    public void onException(Throwable exception) {
//                        MyLogUtil.e("NIMClientLogin", "NIMClientLogin  exception=" + exception.getMessage());
//                    }
//                };
//
//        //执行手动登录
//        NIMClient.getService(AuthService.class).login(loginInfo).setCallback(callback);
//    }
//
//    private void NIMClientObserveOnlineStatus() {
//        NIMClient.getService(AuthServiceObserver.class).observeOnlineStatus(
//                new Observer<StatusCode>() {
//                    public void onEvent(StatusCode status) {
//                        //获取状态的描述
//                        String desc = status.getDesc();
//                        MyLogUtil.e("NIMOnlineStatus", "NStatusCode=" + status + ",desc==" + desc);
//                        if (status == StatusCode.KICKOUT) {
//                            // 被踢出、账号被禁用、密码错误等情况，自动登录失败，需要返回到登录界面进行重新登录操作
//                            mIsKickedOffline = true;
//                            checkUserStatus();
//                        }
//
//                        if (status == StatusCode.LOGINED) {
//                            CallKitUIOptions options = new CallKitUIOptions.Builder()
//                                    // 必要：音视频通话 sdk appKey，用于通话中使用
//                                    .rtcAppKey(BuildConfig.YX_APP_KEY)
//                                    // 通话接听成功的超时时间单位 毫秒，默认 30s
//                                    .timeOutMillisecond(30 * 1000L)
//                                    // 此处为 收到来电时展示的 notification 相关配置，如图标，提示语等。
//                                    .notificationConfigFetcher(new SelfNotificationConfigFetcher())
//                                    // 收到被叫时若 app 在后台，在恢复到前台时是否自动唤起被叫页面，默认为 true
//                                    .resumeBGInvitation(true)
//                                    // 请求 rtc token 服务，若非安全模式则不需设置（V1.8.0 版本之前需要配置，V1.8.0 及之后版本无需配置）
//                                    //.rtcTokenService((uid, callback) -> requestRtcToken(appKey, uid, callback)) // 自己实现的 token 请求方法
//                                    // 设置初始化 RTC SDK 相关配置，按照所需进行配置
//                                    .rtcSdkOption(new NERtcOption())
//                                    // 呼叫组件初始化 rtc 范围，NECallInitRtcMode.GLOBAL-全局初始化，
//                                    // NECallInitRtcMode.IN_NEED-每次通话进行初始化以及销毁，全局初始化有助于更快进入首帧页面，
//                                    // 当结合其他组件使用时存在 rtc 初始化冲突可设置 NECallInitRtcMode.IN_NEED
//                                    // 或当结合其他组件使用时存在 rtc 初始化冲突可设置 NECallInitRtcMode.IN_NEED_DELAY_TO_ACCEPT
//                                    .build();
//// 不要重复初始化组件可能会产生 sdk 初始化失败问题
//                            CallKitUI.init(getApplicationContext(), options);
//                        }
//
//                    }
//                }, true);
//    }
//
//
//    /**
//     * 设置展开收起状态
//     * @param status
//     */
//    private void setArrowStatus(int status){
//        if(status == 0){
//            layoutModle.setVisibility(View.GONE);
//            ivArrow.setBackgroundResource(R.mipmap.img_main_modle_up_arrow);
//        }else if(status == 1){
//            layoutModle.setVisibility(View.VISIBLE);
//            ivArrow.setBackgroundResource(R.mipmap.img_main_modle_down_arrow);
//        }
//        isFold = !isFold;
//    }
//}